1. Field of the Invention
The present invention relates generally to methods and systems for logging event data and, more particularly, to methods and systems for logging computer program and physical system event data in a distributed system.
2. Description of the Related Art
Software visualization tools are well known in the art for providing ways to analyze the flow of a computer software program during the testing and debugging process. These tools track the time and value of certain events as they occur while running the program. Such tools typically implement a concept known as xe2x80x9cevent loggingxe2x80x9d to monitor and record events as they take place within the monitored program.
Generally, event logging is implemented by xe2x80x9cinstrumentingxe2x80x9d the computer software program. Instrumenting includes adding code at key points in the monitored program. The added code creates a record of when particular events occur in the program as it is being run on the computer. The created record typically contains a set of entries for individual events, such as an entry for the type of event (e.g., I/O or bus operation), the start and end of the event, and an associated value of the event. The time of the event may be based on the system clock. A programmer may then analyze the record of events to determine what events took place and when.
Event logging is even more difficult and time consuming in a distributed system. In such a case, programmers must try to align in time events occurring across multiple computers. One conventional way programmers deal with this situation is by manually comparing the event logs collected from different computers. Programmers then try to time align them based on known operational sequences between the different computers. Not surprisingly, this approach yields highly inaccurate results.
Some conventional event monitoring systems have been implemented purely in software as event logging programs. Most event logging programs execute the monitored program on the same computer as the software that performs the event logging functions. Thus, the event logging program effectively shares hardware resources with the monitored program. Because the event logging functions are fairly time consuming, they will interfere with the process flow of the monitored program, thereby making the recorded events less useful.
Hardware-based approaches often fail to have the necessary system components to support optimal event logging. For instance, many processors do not have access to a high resolution clock for determining when events occur. Furthermore, in distributed applications involving multiple computers, the event data cannot be correlated in time. Although some conventional systems may use a clock on each computer to time stamp the events, these clocks typically have no way of being coordinated or synchronized with one another. Nor do such systems provide an event collection program suited for collating coordinated event data from the different computers. Any such systems that synchronize clocks must be running on the same system bus.
Hybrid implementations of event monitoring systems are known in the prior art. Generally, these systems use event logging software running on dedicated hardware other than the system being monitored. The primary advantage of such system is that they minimize any interference with the system running the monitored program. In one conventional system, specialized hardware running event monitoring software for the specific monitoring application can be implemented in each node of a distributed system.
The conventional system includes a special xe2x80x9ctest and measurement processorxe2x80x9d (xe2x80x9cTMPxe2x80x9d) that facilitates event monitoring upon receipt of a data value issued by an instrumented program running on a target or monitored processor. The target processor running the monitored program issues data according to events occurring in the instrumented monitored program. The TMP receives the data issued by the monitored program and target processor as incoming data. Event monitoring software running on the TMP then decodes the incoming data and records the particular event.
This conventional system is limited in several respects, however. Most importantly is that the conventional system cannot log events produced by computer programs running on target processors located throughout a distributed system. The conventional system only allows collecting of events running on processors located on the same bus to which the TMP is connected.
Another conventional system includes an event logging system that addresses some of the limitations found in the above-mentioned conventional system. This second conventional system uses a hybrid approach in the form of a computer control card configured on the backplane containing the target processor. The control card has its own processor for time tagging events on the target processors its monitors. But, like the first conventional system, the event logging system of the second conventional system cannot monitor events of computer programs running on processors throughout a distributed system. The second conventional system can only log events on the target processors connected to the associated backplane. The event logging system of the second conventional system further cannot monitor events of computer programs concurrently with other physical processes/systems located throughout a distributed system.
Therefore, it is desired to have an event logging system that can accurately log events of computer software programs running on processors throughout a distributed system. Moreover, it is desired to have such a system that also minimizes any intrusion into the program flow of the monitored program. It is further desired to have an event logging system that can log events, related to distributed physical processes/systems, concurrently with events of computer software programs.
Systems consistent with the present invention allow for concurrent event logging of computer software programs running on processors and physical processes/systems in a distributed system. Systems consistent with the present invention also minimize intrusion into the program flow of the monitored program by efficiently collecting and logging the events of monitored programs.
To achieve these and other advantages, an event logging system consistent with the present invention collects events relating to a plurality of target programs. Each program runs on a respective target processor, and each target processor is located on a separate system bus. An event logging system consistent with the present invention further collects events relating to a plurality of physical system electrical devices. The system comprises a plurality of event collection cards, each for receiving events from a respective one of the plurality of target programs or the plurality of physical system electrical devices. Each event collection card, respective target processor and physical system electrical device may be installed on the same system bus.
A further aspect of the present invention comprises a system for collecting events relating to multiple distributed physical systems. The system includes multiple event collection cards, each receiving events from one of the distributed physical systems. Each event collection card includes a time stamp clock configured to provide a time stamp when each event is received, an event memory configured to store the received events, a sync control unit configured to synchronize the time stamp clock to a received sync signal, and a collection control unit configured to time stamp the collected events according to the time stamp clock synchronized to the sync signal, and configured to store the time stamped events in the event memory.
An additional aspect of the present invention comprises a method of collecting events relating to distributed physical systems. The method includes collecting events relating to one of the distributed physical systems, receiving a sync signal, synchronizing a time stamp clock to the received sync signal, time stamping the collected events according to the time stamp clock synchronized to the sync signal, and storing the time-stamped events.
Both the foregoing general description and the following detailed description are exemplary and are intended to provide further explanation of the invention as claimed.